package com.shrct.businessprocess.product;

import com.shrct.businessprocess.product.RCDerivedFullServiceProductSpecification;
import com.shrct.businessprocess.product.RCProductMetaType;
import com.shrct.businessprocess.product.RCProductSpecification;
import com.shrct.businessprocess.product.RCServiceLevel;
import com.shrct.businessprocess.product.RCServiceResponseTime;
import edu.fudan.mylang.pf.IBaseService;
import org.eclipse.xtext.xbase.lib.Procedures.Procedure1;

public interface RCProductSpecificationDAO extends IBaseService {
  public abstract RCProductSpecification findByCode(final String code);
  
  public abstract RCDerivedFullServiceProductSpecification getFullService(final RCProductSpecification productSpec, final String serviceSpec, final RCServiceLevel serviceLevel, final RCServiceResponseTime serviceResponseTime, final Integer months);
  
  public abstract RCProductSpecification create(final String _code, final Procedure1<? super RCProductSpecification> postInit);
  
  public abstract RCProductSpecification createOrFind(final String _code, final RCProductMetaType productMetaType);
  
  public abstract void delete(final RCProductSpecification e, final Procedure1<? super RCProductSpecification> preDelete);
}
